#!/usr/bin/python3
# _*_ coding: utf-8 _*_
#
# Copyright (C) 2024 - 2024 heihieyouheihei, Inc. All Rights Reserved 
#
# @Time    : 2024/9/9 10:28
# @Author  : Yuyun
# @File    : 摆动序列.py
# @IDE     : PyCharm

"""
如果连续数字之间的差严格地在正数和负数之间交替，则数字序列称为摆动序列。第一个差（如果存在的话）可能是正数或负数。少于两个元素的序列也是摆动序列。
例如， [1,7,4,9,2,5] 是一个摆动序列，因为差值 (6,-3,5,-7,3)  是正负交替出现的。
相反, [1,4,7,2,5]  和  [1,7,4,5,5] 不是摆动序列，第一个序列是因为它的前两个差值都是正数，第二个序列是因为它的最后一个差值为零。
给定一个整数序列，返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些（也可以不删除）元素来获得子序列，剩下的元素保持其原始顺序。

示例 1:
输入: [1,7,4,9,2,5]
输出: 6
解释: 整个序列均为摆动序列。
示例 2:
输入: [1,17,5,10,13,15,10,5,16,8]
输出: 7
解释: 这个序列包含几个长度为 7 摆动序列，其中一个可为[1,17,10,13,10,16,8]。
示例 3:
输入: [1,2,3,4,5,6,7,8,9]
输出: 2

"""

class Solution:
    """
    贪心解法
    局部最优：删除单调坡度上的节点（不包括单调坡度两端的节点），那么这个坡度就可以有两个局部峰值。
    整体最优：整个序列有最多的局部峰值，从而达到最长摆动序列。
    实际操作上，其实连删除的操作都不用做，因为题目要求的是最长摆动子序列的长度，所以只需要统计数组的峰值数量就可以了（相当于是删除单一坡度上的节点，然后统计长度）
    这就是贪心所贪的地方，让峰值尽可能的保持峰值，然后删除单一坡度上的节点
    """
    def sway_list(self, nums):
        length = len(nums)
        result = 1  #   记录峰值个数，序列默认序列最右边有一个峰值
        if length == 0:
            result = 0
        prediff = 0
        for i in range(1, length - 1):
            currdiff = nums[i + 1] - nums[i]
            #   出现峰值（左右小、左右大、左等右小、左等右大、左小右等、左大右等）
            if (prediff >= 0 and currdiff < 0) or (prediff <= 0 and currdiff > 0):
                result += 1
                prediff = currdiff
        return result

if __name__ == "__main__":
    nums = list(map(int, input().split(',')))
    solution = Solution()
    result = solution.sway_list(nums)
    print(result)